#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/ioctl.h>
#include <stdint.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdbool.h>
#include <errno.h>
#include <string.h>
#include <signal.h> // for signal()
#include <dlfcn.h>
#include <pthread.h>
#include <linux/fb.h>
void cleanup(int sig)
{
    // 僵尸子进程会被自动清除
    wait(NULL);
}

int main()
{
    // 在产生子进程之前，准备好处理它们的SIGCHILD信号
    signal(SIGCHLD, cleanup);


    // 子进程退出，成为僵尸进程
    if(fork() == 0)
        return 0;

    // 父进程干自己的活，无需关注子进程
    for(int i=0;i<10;i++)
    {
        printf("%d\n",i);
        sleep(1);
    }

    return 0;
}